Translating natural language utterances to keyword search queries

ABSTRACT

Natural language query translation may be provided. A statistical model may be trained to detect domains according to a plurality of query click log data. Upon receiving a natural language query, the statistical model may be used to translate the natural language query into an action. The action may then be performed and at least one result associated with performing the action may be provided.

CROSS-REFERENCE/RELATED APPLICATIONS

This application is a continuation of, and claims priority to U.S.patent application Ser. No. 13/592,638, filed Aug. 23, 2012, entitled“TRANSLATING NATURAL LANGUAGE UTTERANCES TO KEYWORD SEARCH QUERIES,” nowissued U.S. Pat. No. 9,064,006. This Application is related to U.S.patent application Ser. No. 13/106,374, filed on May 12, 2011, entitled“SENTENCE SIMPLIFICATION FOR SPOKEN LANGUAGE UNDERSTANDING,” now issuedU.S. Pat. No. 9,454,962, each of which is hereby incorporated byreference in their entirety.

BACKGROUND

Conversational, or natural language, questions and speech differ bothstylistically and in content from commands and queries given tocomputers. For example, one person may ask a friend “Is there a goodItalian place nearby?” while a search query to a computer may be phrased“Italian restaurant nearby.” Conventional approaches to handling keywordsearch queries depend on reviewing search engine logs to determine whichqueries correlate to which selected links and using this data to providethose same links when the same queries occur. This approach fails toimprove search results for natural language queries, however, because ofthe tremendous variation in conversational style between users, evenwhen attempting to create the same search parameters.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter. Nor is this Summaryintended to be used to limit the claimed subject matter's scope.

Natural language query translation may be provided. A statistical modelmay be trained to detect domains according to a plurality of query clicklog data. Upon receiving a natural language query, the statistical modelmay be used to translate the natural language query into an action, suchas a search engine query. The action may then be performed and at leastone result associated with performing the action may be provided.

Both the foregoing general description and the following detaileddescription provide examples and are explanatory only. Accordingly, theforegoing general description and the following detailed descriptionshould not be considered to be restrictive. Further, features orvariations may be provided in addition to those set forth herein. Forexample, embodiments may be directed to various feature combinations andsub-combinations described in the detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this disclosure, illustrate various embodiments of the presentinvention. In the drawings:

FIG. 1 is a block diagram of an operating environment;

FIG. 2 is an illustration of a query click log graph;

FIG. 3 is a flow chart of a method for providing natural language querytranslation;

FIG. 4 is a block diagram of a computing device;

FIGS. 5A-5B are simplified block diagrams of a mobile computing devicewith which embodiments of the present disclosure may be practiced; and

FIG. 6 is a simplified block diagram of a distributed computing systemin which embodiments of the present disclosure may be practiced.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings.Wherever possible, the same reference numbers are used in the drawingsand the following description to refer to the same or similar elements.While embodiments of the invention may be described, modifications,adaptations, and other implementations are possible. For example,substitutions, additions, or modifications may be made to the elementsillustrated in the drawings, and the methods described herein may bemodified by substituting, reordering, or adding stages to the disclosedmethods. Accordingly, the following detailed description does not limitthe invention.

Spoken language understanding (SLU) in human/machine spoken dialogsystems is a process that aims to automatically identify a user'sgoal-driven intents for a given domain. For example, the user's intentmay be to make a dinner reservation, with goals of: (a) locating arestaurant (b) in a particular area (c) with available reservations and(d) for a particular time and date. A query may be expressed in naturallanguage, such as “find me an Italian restaurant nearby with a table fortwo,” and the SLU system may detect a top level domain as an initialclassification. In the example query above, the domain may comprise“restaurants.”

SLU systems enable users to speak naturally to computers, but thesuccess and broad use of keyword search engines imply the strength ofkeyword searches. Some users may attempt to speak in keywords, hopingfor better machine understanding. SLU systems consistent withembodiments of this disclosure may be capable of handling either styleof query that may be received from a user.

Domain detection for a query may be accomplished by parsing the user'squery through a statistical model that uses extracted features, such askeywords relating to a user's desired action or intent, to determine astatistically most-likely domain for the query. Such domain detectionmodels may be trained via supervised machine learning methods that uselexical, contextual, and other semantic features. Consistent withembodiments of this disclosure, naturally spoken user queries may betranslated into a form similar to keyword search queries. Featuresextracted from the query may be statistically compared to thoseextracted from search engine query click logs that capture the behaviorof an abundance of users who typed in the same and/or a similar searchquery.

Search query click log data (“click data”) comprises an aggregation ofpast search engine users' queries and the links these users click from alist of sites returned by the search engine. This click data may be usedas implicit supervision to improve future search decisions. The clickdata may be mined, for example, to train domain detection statisticalmodels when little or no in-domain data was available. Furthermore, theclick data may help enrich existing training data sets with newfeatures, such as computing the click distribution over a set of relatedUniform Resource Locators (URLs) from search query click logs.

Since the form of natural language queries often differs from shorterkeyword search queries, the natural language queries may be transformedinto query-like sentences using a syntax-based transformation and domainindependent salient phrases (DISPs) learned from multi-domain userutterances. These DISPs may comprise introductory phrases such as “howfar is . . . ,” “show me . . . ,” “what are the . . . ,” “find a . . .,” etc. By analyzing queries across multiple domains, it is possible toidentify such common salient phrases that identify an incoming query asa natural language query. Once identified, these queries may beprocessed and/or pre-processed differently than incoming keywordsearches. For example the domain-specific portions of the naturallanguage query may be mapped to a similar keyword query.

While these transformations help improve domain detection, thetransformed queries may not necessarily be targeted to match the styleof keyword search queries. In some embodiments consistent with thisdisclosure, statistical machine translation (SMT) may operate totranslate user utterances to a search query form.

Training for the SMT models may use semantically similar naturallanguage utterances and query pairs that may be mined by walking on abi-partite query click graph. Search query click logs can be representedas a bi-partite graph with two types of nodes corresponding to queriesand URLs. Edges are added to the click graph mapping which URL(s) a userclicks on after providing a particular query. The graph is then searchedfor queries that include domain independent salient phrases (DISP).These queries represent natural language queries and form a seed set formining pairs.

Some example natural language/keyword pairs, and their correspondingDISP(s), that may be found in click data shown in Table 1, below. Asseen, there are cases where the words or phrases in the input query aretranslated into other words (e.g., “biggest US companies” is translatedinto “fortune 500 companies”). Once the NL queries are translated intokeyword queries, features for domain detection may be extracted.

TABLE 1 Natural Language Query Keyword Query DISP(s) What are the signsof throat Throat cancer symptoms What are the cancer? How many caloriesdo I need Calories per day How many to eat in a day? I need What are thebiggest US Fortune 500 companies What are the companies? How do I knowif I am Anemia How do I anemic? Find me the closest Italian Italianrestaurant downtown Find me restaurant

The query click graph identifies a set of keyword queries that are mostsemantically similar to the natural language (NL) queries. To minimizethe computational cost of walking the graph, the URL that has themaximum click probability given the natural language query in questionis used and a similarity between the natural language query and akeyword query corresponding to that URL is calculated. The pairs thathave the highest similarity form the basis for training SMT models. Inshort, when the same URL has a high click-through rate for a given NLquery and a keyword query, and the semantic similarity between the NLquery and keyword query (with or without the DISP included), the pairmay be considered a high value pair for training the SMT model. Asimilar strategy may be used to map any two different types of queries,such as mapping queries in different languages to each other based oncommon URL click data.

Domain detection may be framed as a classification problem. Given auser's query, the problem is to associate a subset of domains with thequery from amongst all possible domains. To solve this classificationproblem, a class of domains with a maximum conditional probability isselected.

Supervised classification methods may be used to estimate theseconditional probabilities, and a set of labeled queries may be used intraining a statistical model. These labeled queries may comprise, forexample, explicitly human-annotated query click log data and/orimplicitly annotated data. Classification may employ lexical featuressuch as word n-grams, contextual features such as a previous query'sdomain, semantic features such as named entities in the utterance (e.g.,specific locations or people), syntactic features such as part-of-speechtags, topical features such as latent semantic variables and so on.

The implicitly annotated data coming from click data may be leveraged asadditional features for training domain detection classification models.This is straight-forward in cases where a given user utterance is foundin the click data with relatively high frequency, but the language usedin natural language queries in an SLU system is different fromkeyword-based queries. For some domains, such as one where the users arescheduling their own meetings, queries are unlikely to occur in theclick data. In this case, the absence of a mapped query in the clickdata also provides information about the category of an utterance.

Users typically generate different sequences of words according to theirintent and depending on whether they interact with a web search engine,another human, or an intelligent SLU system. When they wonder about the“capacity of a Boeing 737,” they can form a simple keyword-based querysuch as “capacity Boeing 737” when interacting with a search engine.When they are interacting with an intelligent SLU system, they mayprovide a more natural language query, such as “what is the capacity ofa Boeing 737 airplane.” A syntactic parsing based sentencetransformation method may strip domain-independent words and convertthis query to “capacity 737,” so that the domain classifier can performbetter on them.

Such transformed natural language queries are often semantically similarto keyword-based search engine queries. Hence, it is possible to use theURL click distributions for the similar keyword-based query. Forexample, the natural language query “I need to make a reservation fordinner” may be transformed as “make reservation,” and that query mayresult in clicks to webpages that offer the user the ability to createrestaurant reservations. The domain detection can exploit thisorthogonal information in addition to the input query. For example, thetranslated query may be searched in the query click data and the URLclick distribution feature may be used to help determine the domain ofthe input query.

FIG. 1 is a block diagram of an operating environment 100 that mayprovide natural language query translation. Operating environment 100may comprise a user device 105 comprising an input device 110, such as acamera and/or microphone. Input device 110 may be coupled to a spokenlanguage understanding module 115 comprising a domain detection module120, a query translation module 125, and a query agent 130. User device105 may further comprise a display 140. User device 110 may be operativeto communicate with other computing devices, such as transmittingqueries from query agent 130 to a search engine 150 via a network 160and receiving results from search engine 150 for output to display 140.

FIG. 2 is a block diagram of a trainer 200 for domain detection module120. Trainer 200 comprises a query pair miner 210, a model trainer 220,a statistical machine translator (SMT) model 230, a feature extractor240, and a query click log database 250. Domain detection module 120 mayuse a set of phrases that are typical of natural language queriesreferred to as domain independent salient phrases (DISP). Query pairminer 210 may mine semantically similar natural language query andkeyword-based search query pairs. Model trainer 220 may use these minedpairs to train SMT model 230 to convert natural language queries tokeyword-based queries. Feature extractor 240 may analyze the query pairsand associated uniform resource locators (URLs) from query click logsdatabase 250 for features useful in domain detection.

Newly received queries, such as may be provided by a user via inputdevice 110, may be fed into SMT model 230 to be translated into akeyword-based query, and the natural language/keyword query pair may bechecked against the click data from query click log database 250. A setof features may be computed from any click data corresponding to thequery pair. If the query pair is not seen in the query click logs, thisinformation is also provided to domain detection module 120, as it mayindicate that the input belongs to a domain where there are no queriescategorically related to information on the web.

DISPs comprise words and/or phrases that are salient for more than onedomain. Available labeled training data from other domains may be usedto identify these DISPs. For each n-gram in a data set, a probabilitydistribution over all possible domains and the Kullback-Leibler (KL)divergence between this distribution and the prior probabilities overall domains may be computed. The word n-grams that show the leastdivergence from the prior distribution may be selected as thedomain-independent salient phrases. Such phrases may comprise, forexample, “show me all the” or “I want information on” that frequentlyappear in natural language utterances directed to spoken dialog systemsfor information access.

Model trainer 220 may use training data consisting of millions of highprecision pairs mined as described above. When a natural language queryhas more than one corresponding query based on a selected threshold, amost frequent keyword-based query may be used. Training data maycomprise search engine result data across all searches, and/or may betargeted to specific domains of interest to a particular SLU system.Minimum error rate training (MERT) processes may be used to tune theprobability weighting of the training data.

FIG. 3 is a flow chart setting forth the general stages involved in amethod 300 consistent with an embodiment of the disclosure for providingnatural language query translation. Method 300 may be implemented usinga computing device 400 as described in more detail below with respect toFIG. 4. Ways to implement the stages of method 300 will be described ingreater detail below. Method 300 begins at starting block 305 andproceeds to stage 310 where computing device 400 may train a statisticalmachine translation model according to a plurality of mined query pairs.For example, a plurality of domain independent salient phrases (DISPs)may be identified and used to identify a plurality of previous naturallanguage queries according to the plurality of DISPs in a set of queryclick log data. Each of the identified natural language queries may beassociated with a keyword-based query into a mined query pair of theplurality of mined query pairs according to a uniform resource locator(URL) click graph. Such a click graph may comprise a weighteddistribution of URLs selected in response to previous natural languagequeries and previous keyword-based queries. Common features for each ofthe mined query pairs may also be extracted to aid in domain detection.

Method 300 may then advance to stage 315 where computing device 400 mayreceive a new query from a user. For example, user device 105 mayreceive a query such as “what are some good Italian restaurants nearby.”

Method 300 may then advance to stage 325 where computing device 400 maymap the query into a keyword-based query according to the trainedstatistical machine translation (SMT) model. For example, SLU module 115may detect whether the query comprises a natural language query bydetermining whether the received query comprises any DISPs. Even whenthe received query is not a natural language query, the SMT model maytranslate the received query into a different format and/or word orderto better correlate with common, previously received queries. For thequery “what are some good Italian restaurants nearby,” for example, SMTmodel 230 may identify a query pair associated with locating restaurantsthat comprises similar extracted features to the newly received query,such as an associated geographic location.

After mapping the natural language query into a keyword-based query atstage 325, or if the new query was determined not to be in naturallanguage form at stage 320, method 300 may advance to stage 330 wherecomputing device 400 may perform the search action. For example, thequery may be provided to search engine 150 for execution.

Method 300 may then advance to stage 335 where computing device 400 mayprovide a plurality of results associated with the search to the user.For example, search engine 150 may return a plurality of URLs accordingto the search query that may be output to display 140. The URLdistribution associated with the mapped keyword-based query may be usedto order and/or re-order the results. Method 300 may then end at stage340.

An embodiment consistent with the invention may comprise a system forproviding natural language query translation. The system may comprise amemory storage and a processing unit coupled to the memory storage. Theprocessing unit may be operative to train a statistical model to detectdomains according to a plurality of query click log data. Upon receivinga natural language query, the processing unit may be operative to usethe statistical model to translate the natural language query into anaction. The processing unit may then be perform the action and provideat least one result associated with performing the action.

Another embodiment consistent with the invention may comprise a systemfor providing natural language query translation. The system maycomprise a memory storage and a processing unit coupled to the memorystorage. The processing unit may be operative to receive a query from auser, determine whether the query comprises a natural language query,and in response to determining that the query comprises the naturallanguage query, map the natural language query into a keyword-basedquery, perform a search according to a query pair comprising the naturallanguage query and the keyword-based query, and provide a plurality ofresults associated with the search to the user.

Yet another embodiment consistent with the invention may comprise asystem for providing natural language query translation. The system maycomprise a memory storage and a processing unit coupled to the memorystorage. The processing unit may be operative to train a statisticalmachine translation model according to a plurality of mined query pairs,extract a plurality of common features for each of the mined querypairs, receive a new query from a user, and determine whether the newquery comprises a new natural language query. In response to determiningthat the query comprises the natural language query, the processing unitmay be operative to map the new natural language query into akeyword-based query according to the trained statistical machinetranslation model. The processing unit may be further operative toperform a search according to the new query and provide a plurality ofresults associated with the search to the user.

FIG. 4 is a block diagram of a system including computing device 400.Consistent with an embodiment of the invention, the aforementionedmemory storage and processing unit may be implemented in a computingdevice, such as computing device 400 of FIG. 4. Any suitable combinationof hardware, software, or firmware may be used to implement the memorystorage and processing unit. For example, the memory storage andprocessing unit may be implemented with computing device 400 or any ofother computing devices 418, in combination with computing device 400.The aforementioned system, device, and processors are examples and othersystems, devices, and processors may comprise the aforementioned memorystorage and processing unit, consistent with embodiments of theinvention. Furthermore, computing device 400 may comprise user device100 as described above. Methods described in this specification mayoperate in other environments and are not limited to computing device400.

With reference to FIG. 4, a system consistent with an embodiment of thedisclosure may include a computing device, such as computing device 400.In a basic configuration, computing device 400 may include at least oneprocessing unit 402 and a system memory 404. Depending on theconfiguration and type of computing device, system memory 404 maycomprise, but is not limited to, volatile (e.g., random access memory(RAM)), non-volatile (e.g., read-only memory (ROM)), flash memory, orany combination. System memory 404 may include operating system 405, oneor more programming modules 406, and may comprise, for example, domaindetection module 120. Operating system 405, for example, may be suitablefor controlling computing device 400's operation. Furthermore,embodiments of the invention may be practiced in conjunction with agraphics library, other operating systems, or any other applicationprogram and is not limited to any particular application or system. Thisbasic configuration is illustrated in FIG. 4 by those components withina dashed line 408.

Computing device 400 may have additional features or functionality. Forexample, computing device 400 may also include additional data storagedevices (removable and/or non-removable) such as, for example, magneticdisks, optical disks, or tape. Such additional storage is illustrated inFIG. 4 by a removable storage 409 and a non-removable storage 410.Computing device 400 may also contain a communication connection 416that may allow device 400 to communicate with other computing devices418, such as over a network in a distributed computing environment, forexample, an intranet or the Internet. Communication connection 416 isone example of communication media.

The term computer readable media as used herein may include computerstorage media. Computer storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, program modules, or other data. Systemmemory 404, removable storage 409, and non-removable storage 410 are allcomputer storage media examples (i.e., memory storage.) Computer storagemedia may include, but is not limited to, RAM, ROM, electricallyerasable read-only memory (EEPROM), flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore information and which can be accessed by computing device 400. Anysuch computer storage media may be part of device 400. Computing device400 may also have input device(s) 412 such as a keyboard, a mouse, apen, a sound input device, a touch input device, etc. Output device(s)414 such as a display, speakers, a printer, etc. may also be included.The aforementioned devices are examples and others may be used.

The term computer readable media as used herein may also includecommunication media. Communication media may be embodied by computerreadable instructions, data structures, program modules, or other datain a modulated data signal, such as a carrier wave or other transportmechanism, and includes any information delivery media. The term“modulated data signal” may describe a signal that has one or morecharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia may include wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, radio frequency (RF),infrared, and other wireless media.

As stated above, a number of program modules and data files may bestored in system memory 404, including operating system 405. Whileexecuting on processing unit 402, programming modules 406 (e.g.,translation API 120) may perform processes and/or methods as describedabove. The aforementioned process is an example, and processing unit 402may perform other processes. Other programming modules that may be usedin accordance with embodiments of the present invention may includeelectronic mail and contacts applications, word processing applications,spreadsheet applications, database applications, slide presentationapplications, drawing or computer-aided application programs, etc.

FIGS. 5A and 5B illustrate a mobile computing device 500, for example, amobile telephone, a smart phone, a tablet personal computer, a laptopcomputer, and the like, with which embodiments of the disclosure may bepracticed. With reference to FIG. 5A, an exemplary mobile computingdevice 500 for implementing the embodiments is illustrated. In a basicconfiguration, the mobile computing device 500 is a handheld computerhaving both input elements and output elements. The mobile computingdevice 500 typically includes a display 505 and one or more inputbuttons 510 that allow the user to enter information into the mobilecomputing device 500. The display 505 of the mobile computing device 500may also function as an input device (e.g., a touch screen display). Ifincluded, an optional side input element 515 allows further user input.The side input element 515 may be a rotary switch, a button, or anyother type of manual input element. In alternative embodiments, mobilecomputing device 500 may incorporate more or less input elements. Forexample, the display 505 may not be a touch screen in some embodiments.In yet another alternative embodiment, the mobile computing device 500is a portable phone system, such as a cellular phone. The mobilecomputing device 500 may also include an optional keypad 535. Optionalkeypad 535 may be a physical keypad or a “soft” keypad generated on thetouch screen display. In various embodiments, the output elementsinclude the display 505 for showing a graphical user interface (GUI), avisual indicator 520 (e.g., a light emitting diode), and/or an audiotransducer 525 (e.g., a speaker). In some embodiments, the mobilecomputing device 500 incorporates a vibration transducer for providingthe user with tactile feedback. In yet another embodiment, the mobilecomputing device 500 incorporates input and/or output ports, such as anaudio input (e.g., a microphone jack), an audio output (e.g., aheadphone jack), and a video output (e.g., a HDMI port) for sendingsignals to or receiving signals from an external device.

FIG. 5B is a block diagram illustrating the architecture of oneembodiment of a mobile computing device. That is, the mobile computingdevice 500 can incorporate a system (i.e., an architecture) 502 toimplement some embodiments. In one embodiment, the system 502 isimplemented as a “smart phone” capable of running one or moreapplications (e.g., browser, e-mail, calendaring, contact managers,messaging clients, games, and media clients/players). In someembodiments, the system 502 is integrated as a computing device, such asan integrated personal digital assistant (PDA) and wireless phone.

One or more application programs 566 may be loaded into the memory 562and run on or in association with the operating system 564. Examples ofthe application programs include phone dialer programs, e-mail programs,personal information management (PIM) programs, word processingprograms, spreadsheet programs, Internet browser programs, messagingprograms, and so forth. The system 502 also includes a non-volatilestorage area 568 within the memory 562. The non-volatile storage area568 may be used to store persistent information that should not be lostif the system 502 is powered down. The application programs 566 may useand store information in the non-volatile storage area 568, such ase-mail or other messages used by an e-mail application, and the like. Asynchronization application (not shown) also resides on the system 502and is programmed to interact with a corresponding synchronizationapplication resident on a host computer to keep the information storedin the non-volatile storage area 568 synchronized with correspondinginformation stored at the host computer. As should be appreciated, otherapplications may be loaded into the memory 562 and run on the mobilecomputing device 500.

The system 502 has a power supply 570, which may be implemented as oneor more batteries. The power supply 570 might further include anexternal power source, such as an AC adapter or a powered docking cradlethat supplements or recharges the batteries. The system 502 may alsoinclude a radio 572 that performs the function of transmitting andreceiving radio frequency communications. The radio 572 facilitateswireless connectivity between the system 502 and the “outside world”,via a communications carrier or service provider. Transmissions to andfrom the radio 572 are conducted under control of the operating system564. In other words, communications received by the radio 572 may bedisseminated to the application programs 566 via the operating system564, and vice versa.

The radio 572 allows the system 502 to communicate with other computingdevices, such as over a network. The radio 572 is one example ofcommunication media. Communication media may typically be embodied bycomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as a carrier wave or othertransport mechanism, and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. The term computer readable media as used herein includesboth storage media and communication media.

This embodiment of the system 502 provides notifications using thevisual indicator 520 that can be used to provide visual notificationsand/or an audio interface 574 producing audible notifications via theaudio transducer 525. In the illustrated embodiment, the visualindicator 520 is a light emitting diode (LED) and the audio transducer525 is a speaker. These devices may be directly coupled to the powersupply 570 so that when activated, they remain on for a durationdictated by the notification mechanism even though the processor 560 andother components might shut down for conserving battery power. The LEDmay be programmed to remain on indefinitely until the user takes actionto indicate the powered-on status of the device. The audio interface 574is used to provide audible signals to and receive audible signals fromthe user. For example, in addition to being coupled to the audiotransducer 525, the audio interface 574 may also be coupled to amicrophone to receive audible input, such as to facilitate a telephoneconversation. In accordance with embodiments of the present invention,the microphone may also serve as an audio sensor to facilitate controlof notifications, as will be described below. The system 502 may furtherinclude a video interface 576 that enables an operation of an on-boardcamera 530 to record still images, video stream, and the like.

A mobile computing device 500 implementing the system 502 may haveadditional features or functionality. For example, the mobile computingdevice 500 may also include additional data storage devices (removableand/or non-removable) such as, magnetic disks, optical disks, or tape.Such additional storage is illustrated in FIG. 5B by the non-volatilestorage area 568. Computer storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, program modules, or other data.

Data/information generated or captured by the mobile computing device500 and stored via the system 502 may be stored locally on the mobilecomputing device 500, as described above, or the data may be stored onany number of storage media that may be accessed by the device via theradio 572 or via a wired connection between the mobile computing device500 and a separate computing device associated with the mobile computingdevice 500, for example, a server computer in a distributed computingnetwork, such as the Internet. As should be appreciated suchdata/information may be accessed via the mobile computing device 500 viathe radio 572 or via a distributed computing network. Similarly, suchdata/information may be readily transferred between computing devicesfor storage and use according to well-known data/information transferand storage means, including electronic mail and collaborativedata/information sharing systems.

FIG. 6 illustrates one embodiment of the architecture of a system forproviding applications to one or more client devices, as describedabove. Content developed, interacted with or edited in association withsuch applications may be stored in different communication channels orother storage types. For example, various documents may be stored usinga directory service 622, a web portal 624, a mailbox service 626, aninstant messaging store 628, or a social networking site 630. An emailclient application, for example, may use any of these types of systemsor the like for enabling co-authoring conflict resolution via comments,as described herein. A server 620 may provide applications to theclients. As one example, the server 620 may be a web server providing anemail client application over the web. The server 620 may provide theemail client application over the web to clients through a network 615.By way of example, the client computing device 618 may be implemented ascomputing device 400 and embodied in a personal computer 618 a, a tabletcomputing device 618 b and/or a mobile computing device 618 c (e.g., asmart phone). Any of these embodiments of the client computing device618 may obtain content from the store 616. In various embodiments, thetypes of networks used for communication between the computing devicesthat make up the present invention include, but are not limited to, aninternet, an intranet, wide area networks (WAN), local area networks(LAN), and virtual private networks (VPN). In the present application,the networks include the enterprise network and the network throughwhich the client computing device accesses the enterprise network (i.e.,the client network). In one embodiment, the client network is part ofthe enterprise network. In another embodiment, the client network is aseparate network accessing the enterprise network through externallyavailable entry points, such as a gateway, a remote access protocol, ora public or private internet address.

Generally, consistent with embodiments of the invention, program modulesmay include routines, programs, components, data structures, and othertypes of structures that may perform particular tasks or that mayimplement particular abstract data types. Moreover, embodiments of theinvention may be practiced with other computer system configurations,including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like. Embodiments of theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Furthermore, embodiments of the invention may be practiced in anelectrical circuit comprising discrete electronic elements, packaged orintegrated electronic chips containing logic gates, a circuit utilizinga microprocessor, or on a single chip containing electronic elements ormicroprocessors. Embodiments of the invention may also be practicedusing other technologies capable of performing logical operations suchas, for example, AND, OR, and NOT, including but not limited tomechanical, optical, fluidic, and quantum technologies. In addition,embodiments of the invention may be practiced within a general purposecomputer or in any other circuits or systems.

Embodiments of the invention, for example, may be implemented as acomputer process (method), a computing system, or as an article ofmanufacture, such as a computer program product or computer readablemedia. The computer program product may be a computer storage mediareadable by a computer system and encoding a computer program ofinstructions for executing a computer process. The computer programproduct may also be a propagated signal on a carrier readable by acomputing system and encoding a computer program of instructions forexecuting a computer process. Accordingly, the present invention may beembodied in hardware and/or in software (including firmware, residentsoftware, micro-code, etc.). In other words, embodiments of the presentinvention may take the form of a computer program product on acomputer-usable or computer-readable storage medium havingcomputer-usable or computer-readable program code embodied in the mediumfor use by or in connection with an instruction execution system. Acomputer-usable or computer-readable medium may be any medium that cancontain, store, communicate, propagate, or transport the program for useby or in connection with the instruction execution system, apparatus, ordevice.

The computer-usable or computer-readable medium may be, for example butnot limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, device, or propagationmedium. More specific computer-readable medium examples (anon-exhaustive list), the computer-readable medium may include thefollowing: an electrical connection having one or more wires, a portablecomputer diskette, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, and a portable compact disc read-only memory(CD-ROM). Note that the computer-usable or computer-readable mediumcould even be paper or another suitable medium upon which the program isprinted, as the program can be electronically captured, via, forinstance, optical scanning of the paper or other medium, then compiled,interpreted, or otherwise processed in a suitable manner, if necessary,and then stored in a computer memory.

Embodiments of the invention may be practiced via a system-on-a-chip(SOC) where each or many of the components illustrated in FIG. 4 may beintegrated onto a single integrated circuit. Such an SOC device mayinclude one or more processing units, graphics units, communicationsunits, system virtualization units and various applicationfunctionalities, all of which may be integrated (or “burned”) onto thechip substrate as a single integrated circuit. When operating via anSOC, the functionality, described herein, may operate viaapplication-specific logic integrated with other components of thecomputing device/system X on the single integrated circuit (chip).

Embodiments of the present invention, for example, are described abovewith reference to block diagrams and/or operational illustrations ofmethods, systems, and computer program products according to embodimentsof the invention. The functions/acts noted in the blocks may occur outof the order as shown in any flowchart. For example, two blocks shown insuccession may in fact be executed substantially concurrently or theblocks may sometimes be executed in the reverse order, depending uponthe functionality/acts involved.

While certain embodiments of the invention have been described, otherembodiments may exist. Furthermore, although embodiments of the presentinvention have been described as being associated with data stored inmemory and other storage mediums, data can also be stored on or readfrom other types of computer-readable media, such as secondary storagedevices, like hard disks, floppy disks, or a CD-ROM, a carrier wave fromthe Internet, or other forms of RAM or ROM. Further, the disclosedmethods' stages may be modified in any manner, including by reorderingstages and/or inserting or deleting stages, without departing from theinvention.

All rights including copyrights in the code included herein are vestedin and the property of the Applicants. The Applicants retain and reserveall rights in the code included herein, and grant permission toreproduce the material only in connection with reproduction of thegranted patent and for no other purpose.

While certain embodiments of the invention have been described, otherembodiments may exist. While the specification includes examples, theinvention's scope is indicated by the following claims. Furthermore,while the specification has been described in language specific tostructural features and/or methodological acts, the claims are notlimited to the features or acts described above. Rather, the specificfeatures and acts described above are disclosed as example forembodiments of the invention.

We claim:
 1. A method for providing natural language query translation,the method comprising: training a statistical machine translation modelaccording to a plurality of mined query pairs, wherein training thestatistical machine translation model comprises: identifying a set ofpreviously received keyword type queries that are semantically similarto a set of previously received natural language type queries utilizinga query click graph, pairing at least one keyword type query with anatural language type query that is most semantically similar to formthe mined query pairs; receiving a new natural language type query;mapping the new natural language type query into a new keyword-basedtype query according to the trained statistical machine translationmodel; performing a search query according to the new keyword-based typequery; and providing at least one result from the search query.
 2. Themethod of claim 1, wherein the new natural language type query isreceived as text.
 3. The method of claim 1, wherein the new naturallanguage type query is received as speech.
 4. The method of claim 1,wherein training the statistical machine translation model comprisesidentifying a plurality of domain independent salient phrases.
 5. Themethod of claim 4, wherein at least one of the plurality of domainindependent salient phrases comprises at least one word indicating thatan associated search query comprises a natural language type searchquery.
 6. The method of claim 4, wherein training the plurality of minedquery pairs is associated with a plurality of search engine results. 7.The method of claim 6, further comprising identifying a plurality ofsearch queries associated with the plurality of mined query pairs thatcomprise natural language type search queries according to the pluralityof domain independent salient phrases.
 8. The method of claim 1, whereina correlation between a previously received natural language type queryand a previously received keyword-based type query is associated with aUniform Resource Locator (URL) distribution.
 9. The method of claim 8,wherein performing the search query comprises: searching the pluralityof mined query pairs for a query pair corresponding to the search query;and identifying a domain associated with the search query according tothe URL distribution.
 10. The method of claim 1, wherein the pluralityof query pairs comprises a query pair associated with a geographiclocation.
 11. The method of claim 1, wherein the at least one result isassociated with at least one webpage.
 12. A system for providing naturallanguage query translation, the system comprising: a memory storage; anda processing unit coupled to the memory storage, wherein the processingunit is operable to: train a statistical machine translation modelaccording to a plurality of mined query pairs, wherein train thestatistical machine translation model comprises; identifying a set ofpreviously received keyword type queries that are semantically similarto a set of previously received natural language type queries utilizinga query click graph, pairing at least one keyword type query with atleast one natural language type query that is most semantically similarto form the mined query pair; receive a query from a user, determinewhether the query is a natural language type query or is a keyword typequery, and in response to determining that the query comprises thenatural language type query: map the natural language type query into akeyword-based type query according to the trained statistical machinetranslation model; perform a search query according to the naturallanguage type query and the keyword-based type query; and provide aplurality of results associated with the search query to the user. 13.The system of claim 12, wherein being operative to map the naturallanguage type query into the keyword-based type query comprises beingoperative to: detect a domain associated with the natural language typequery; and strip at least one domain-independent word from the naturallanguage type query.
 14. The system of claim 13, wherein being operativeto detect the domain associated with the natural language type querycomprises being operative to: identify a subset of a plurality ofpossible domains according to at least one feature of the naturallanguage type query.
 15. The system of claim 14, wherein the at leastone feature of the natural language type query comprises at least one ofthe following: a lexical feature, a contextual feature, a semanticfeature, a syntactic feature, and a topical feature.
 16. The system ofclaim 14, wherein being operative to map the natural language type queryinto the keyword-based type query comprises being further operative to:convert the natural language type query into the keyword-based typequery according to the trained statistical machine translation model.17. The system of claim 12, wherein a previously received naturallanguage type query is identified according to a domain independentsalient phrase.
 18. The system of claim 12, wherein a previouslyreceived natural language type query and a previously receivedkeyword-based type query are associated according to a weighted UniformResource Locator (URL) click graph.
 19. The system of claim 12, whereinthe mined query pairs comprises a statistical weighting according to asemantic correlation between a previously received natural language typequery and a previously received keyword-based type query.
 20. A minedquery pair computer-readable medium which stores a set of instructionswhich when executed performs a method for providing natural languagequery translation, the method executed by the set of instructionscomprising: training a statistical machine translation model accordingto a plurality of mined query pairs, wherein training the statisticalmachine translation model comprises: identifying a plurality of domainindependent salient phrases (DISPs), identifying a plurality ofpreviously received natural language type queries that correspond to theplurality of DISPs to form corresponding DISPs, associating at least oneof the plurality of previously received natural language type querieswith a previously received keyword-based type query based on thecorresponding DISPs to form a mined query pair of the plurality of minedquery pairs according to a uniform resource locator (URL) click graph,wherein the URL click graph comprises a weighted distribution of URLsselected in response to the plurality of previous natural languagequeries and the previously received keyword-based type query, andextracting a plurality of common features for at least one of the minedquery pairs; receiving a new search query from a user, determiningwhether the new search query comprises a new natural language typesearch query, in response to determining that the new search querycomprises the new natural language type search query, mapping the newnatural language type search query into a keyword-based type queryaccording to the trained statistical machine translation model;performing a search query according to the keyword-based type query; andproviding a plurality of results associated with the search query to theuser.